/**
 * 数据库管理
 */
layui.define(['index', 'flying'], function (exports) {  //先加载index模块，里面配置了全局的入口
  const admin = layui.admin,
      flying = layui.flying
      ,form = layui.form
      ,table = layui.table
      ,layer = layui.layer
      ,dropdown = layui.dropdown;

  flying.table({
    elem: '#LAY-scheme-table',
    url: '/tools/scheme/page', //数据接口
    cols: [
      {type: 'numbers', fixed: 'left', title: '序号'}
      , {field: 'serviceName', title: '服务名称', minWidth: 150}
      , {field: 'type', title: '数据库类型', minWidth: 150}
      , {field: 'name', title: '数据库名', minWidth: 150}
      , {field: 'host', title: '主机', minWidth: 150}
      , {field: 'port', title: '端口', minWidth: 150}
      , {field: 'username', title: '用户名', minWidth: 150}
      , {field: 'password', title: '密码', minWidth: 150}
      , {field: 'status', title: '状态', minWidth: 90, templet: '#statusSwitchTpl', unresize: true}
      , {field: 'remark', title: '备注', minWidth: 90}
      , {field: 'updatedBy', title: '修改人', minWidth: 90}
      , {field: 'updatedTime', title: '修改时间', templet: '<div>{{ layui.util.toDateString(d.updatedTime, "yyyy-MM-dd HH:mm:ss") }}</div>',  minWidth: 170, sort: true}
      , {title: '操作', width: 160, align: 'center', fixed: 'right', toolbar: '#scheme-table'}
    ]
  });

  const gen = {
    // 保存
    handleSave: function (index, field) {
      //提交 Ajax 成功后，静态更新表格中的数据
      admin.req({
        url: '/tools/scheme/save',
        type: 'post',
        contentType: 'application/json;charset=utf-8',
        data: JSON.stringify(field),
        success: function (res) {
          //执行成功
          layer.msg(res.msg, {icon: 1});
          table.reload('LAY-scheme-table'); //数据刷新
          layer.close(index); //关闭弹层
        }
      });
    },
    // 删除
    handleDelete: function (index, id) {
      //提交 Ajax 成功后，更新表格中的数据
      admin.req({
        url: '/flow/instance/delete?id=' + id
        , type: 'post'
        , done: function (res) {
          //执行成功
          layer.msg(res.msg, {icon: 1});
          table.reload('LAY-scheme-table'); //数据刷新
          layer.close(index); //关闭弹层
        }
      });
    },
    // 撤回
    handleCancel: function (procInstId) {
      //提交 Ajax 成功后，更新表格中的数据
      admin.req({
        url: '/flow/instance/cancel'
        , type: 'post'
        , data: {"procInstId": procInstId}
        , done: function (res) {
          //执行成功
          layer.msg(res.msg, {icon: 1});
          table.reload('LAY-scheme-table'); //数据刷新
        }
      });
    },
    // 委派任务
    handleDelegate: function (taskId, assignee) {
      //提交 Ajax 成功后，更新表格中的数据
      admin.req({
        url: '/flow/instance/task/delegate'
        , type: 'post'
        , data: {"taskId": taskId, "assignee": assignee}
        , done: function (res) {
          //执行成功
          layer.msg(res.msg, {icon: 1});
          table.reload('LAY-scheme-table'); //数据刷新
        }
      });
    },
    // 指派任务
    handleAssign: function (taskId, assignee) {
      //提交 Ajax 成功后，更新表格中的数据
      admin.req({
        url: '/flow/instance/task/assign'
        , type: 'post'
        , data: {"taskId": taskId, "assignee": assignee}
        , done: function (res) {
          //执行成功
          layer.msg(res.msg, {icon: 1});
          table.reload('LAY-scheme-table'); //数据刷新
        }
      });
    }
  }

  //对外暴露的接口
  exports('gen', gen);
});